package com.bgds.sys.module.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author lj
 * @since 2020-01-06
 */
@Data
@TableName("bgds_device")
@ApiModel(value = "设备")
public class Device implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "唯一标识（自增长）",dataType = "Integer")
    private Integer id;

    /**
     * 设备编码
     */
    @TableField("device_code")
    @ApiModelProperty(value = "设备编码")
    private String deviceCode;

    /**
     * 第三方设备关联ID
     */
    @TableField("relation_id")
    @ApiModelProperty(value = "第三方设备关联ID")
    private String relationId;

    /**
     * 设备图片路径
     */
    @TableField("img_url")
    @ApiModelProperty(value = "设备图片路径")
    private String imgUrl;

    /**
     * 父设备编码
     */
    @TableField("parent_code")
    @ApiModelProperty(value = "父设备编码")
    private String parentCode;

    /**
     * 区域编码
     */
    @TableField("region_code")
    @ApiModelProperty(value = "区域编码")
    private String regionCode;



    /**
     * 名称
     */
    @TableField("name")
    @ApiModelProperty(value = "名称")
    private String name;

    /**
     * 设备标识，0：代表非设备，1：设备
     */
    @TableField("device_flag")
    @ApiModelProperty(value = " 设备标识，0：代表非设备，1：设备")
    private Boolean deviceFlag;



    /**
     * 创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;



    /**
     * 当前设备的报警设置信息
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "设备报警信息")
    private List<AlarmLog> alarmLogList;

    /**
     * 子设备
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "子设备")
    private List<Device> children;

}
